/*
 * element.hpp
 *
 *  Created on: May 22, 2011
 *      Author: jmurray
 */

#ifndef ELEMENT_HPP_
#define ELEMENT_HPP_

#include <string>

//I needed to use the T_ prefix to be able to use the word 'switch'. These are for the type element.
#define T_SWTICH 	1
#define T_SIGNAL_2 	2
#define T_SIGNAL_3	3
#define T_LAMP 		4

//These defines are for the status element.
#define UNKNOWN 0
#define OPEN 	1
#define CLOSED 	2
#define CENTER 	3
#define LEFT 	4
#define RIGHT 	5

using namespace std;

class Element {
public:
	Element();
	virtual ~Element();

	// Elements
	//! Unique ID to distinguish from other similar IDs.
	int ID;

	//! Type of the element
	int type;

	//! Human readable name of the Element.
	string name;

	//! Status of the Element
	char status;

	//! Configuration of the element
	int config;
};

#endif /* ELEMENT_HPP_ */
